home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / TPL60N14.ARJ / ROUNDTST.PAS < prev    next >
Pascal/Delphi Source File  |  1992-05-01  |  2KB  |  68 lines

  1. PROGRAM RoundTst;   { Copyright (c) 1992 Norbert Juffa }
  2.  
  3. VAR X,Y,Z: REAL;
  4.     I:     LONGINT;
  5.  
  6. BEGIN
  7.    Y := 4.5;
  8.    Z := 5.5;
  9.    WriteLn ('Testing implementation of Round/Trunc for correct range and IEEE-rounding');
  10.    WriteLn;
  11.    WriteLn;
  12.    Write   ('Testing range of Round towards lower limit ... ');
  13.    X := -2147483647.0;
  14.    REPEAT
  15.       I := Round (X);
  16.       X := X - 1.0/256.0;
  17.    UNTIL X < -2147483648.5;
  18.    WriteLn ('passed');
  19.    WriteLn;
  20.    Write   ('Testing range of Round towards upper limit ... ');
  21.    X := 2147483647.0;
  22.    REPEAT
  23.       I := Round (X);
  24.       X := X + 1.0/256.0;
  25.    UNTIL X >= 2147483647.5;
  26.    WriteLn ('passed');
  27.    WriteLn;
  28.    Write   ('Testing range of Trunc towards lower limit ... ');
  29.    X := -2147483647.0;
  30.    REPEAT
  31.       I := Trunc (X);
  32.       X := X - 1.0/256.0;
  33.    UNTIL X <= -2147483649.0;
  34.    WriteLn ('passed');
  35.    WriteLn;
  36.    Write   ('Testing range of Trunc towards upper limit ... ');
  37.    X := 2147483647.0;
  38.    REPEAT
  39.       I := Trunc (X);
  40.       X := X + 1.0/256.0;
  41.    UNTIL X >= 2147483648.0;
  42.    WriteLn ('passed');
  43.    WriteLn;
  44.    Write   ('Round (4.5) should be: 4, actual value is: ', Round (Y));
  45.    IF Round (Y) = 4 THEN
  46.       WriteLn ('   passed')
  47.    ELSE
  48.       WriteLn ('   failed');
  49.    Write   ('Round (5.5) should be: 6, actual value is: ', Round (Z));
  50.    IF Round (Z) = 6 THEN
  51.       WriteLn ('   passed')
  52.    ELSE
  53.       WriteLn ('   failed');
  54.    WriteLn;
  55.    Y := -4.5;
  56.    Z := -5.5;
  57.    Write   ('Round (-4.5) should be:-4, actual value is:', Round (Y));
  58.    IF Round (Y) =-4 THEN
  59.       WriteLn ('  passed')
  60.    ELSE
  61.       WriteLn ('  failed');
  62.    Write   ('Round (-5.5) should be:-6, actual value is:', Round (Z));
  63.    IF Round (Z) =-6 THEN
  64.       WriteLn ('  passed')
  65.    ELSE
  66.       WriteLn ('  failed');
  67. END. { RoundTst }
  68.